热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自治区|姓氏_Flutter进阶打包

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flutter--进阶打包相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flutter -- 进阶打包相关的知识,希望对你有一定的参考价值。



文章目录


    • 1. 生成key
    • 2. 创建key.properties
    • 3. 更改build.gradle
    • 4.添加混淆文件



1. 生成key

编写完应用后,最后就是打包了,因为我是用 android studio 开发的,所以直接在 Terminal 输入:

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 100000 -alias key

这里记住 -alias key key是别名,可以自己随意更改,弹出:

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: knight
您的组织单位名称是什么?
[Unknown]: knight
您的组织名称是什么?
[Unknown]: knight
您所在的城市或区域名称是什么?
[Unknown]: knight
您所在的省/市/自治区名称是什么?
[Unknown]: knight
该单位的双字母国家/地区代码是什么?
[Unknown]: C
CN=knight, OU=knight, O=knight, L=knight, ST=knight, C=C是否正确?
[否]: Y
正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 100,000 天):
CN=knight, OU=knight, O=knight, L=knight, ST=knight, C=C
[正在存储/Users/luguian/key.jks] -->生成对应的签名文件

我把它复制到android目录下。


2. 创建key.properties

android目录下创建一个key.properties:


3. 更改build.gradle

----->增加
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
----->
android
compileSdkVersion 28
lintOptions
disable 'InvalidPackage'


defaultConfig
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutterdemo"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

----->增加
signingConfigs
release
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']


buildTypes
release
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
// proguard文件是混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'


------>增加


4.添加混淆文件

默认情况下,Flutter不会混淆或缩小Android主机。如果您打算使用第三方Java或Android库,您可能希望减小APK的大小或保护该代码免受逆向工程,那就在在android/app/下添加proguard-rules.pro:

最后在项目根目录执行:

flutter build apk

Initializing gradle... 0.6s
Resolving dependencies... 1.3s
Gradle task 'assembleRelease'...
Gradle task 'assembleRelease'... Done 7.2s
Built build/app/outputs/apk/release/app-release.apk (15.8MB).

最后输出在build-app-release下:

这样就成功了。

ios怎么打包,具体请查看 flutter.dev/docs/deploy…。


推荐阅读
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • SpringBoot集成mybatis框架
    首先,在我们集成mybatis框架之前要先知道什么是mybatis,MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架,看到这应该知道,mybatis是一个关于数 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • Matlab 中的一些小技巧(2)
    1.Ctrl+D打开子程序  在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上 ... [详细]
  • java线条处理技术_Java使用GUI绘制线条的示例
    在Java的GUI编程中,如何使用GUI绘制线条?以下示例演示了如何使用Graphics2D类的Line2D对象的draw()方法作为参数来绘制一条线。 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • 关于python调试大法的信息
    本文目录一览:1、pdbpython调试怎么用 ... [详细]
  • 用聪明的方式学习 Vim
    来自量子位Vim难学难用?但事实是,它依旧受许多程序员的欢迎。或许,只是你的「打开方式」不对。最近,在GitHub上便出现了 ... [详细]
  • 如何在服务器screate.aspx文件执行_如何在windows环境下,用Goland IDE编译go的linux可执行文件...
    欢迎关注我的头条号:Wooola,专注于Java、Golang、微服务架构,致力于每天分享原创文章、快乐编码和开源技术。前言最近楼主做了一 ... [详细]
  • 右键--openterminal1.linux命令格式cmd-optionparametercmd是命令,就是一个操作parameter一般是要要做的对象 ... [详细]
author-avatar
mobiledu2502864045
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有